package com.itheima.controller;

import com.itheima.dto.page.MyPage;
import com.itheima.vo.R;
import com.itheima.entity.YddTag;
import com.itheima.service.YddTagService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.commons.lang.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.util.List;

/**
 * @author zhangpei
 * @ClassName YddTagController
 * @date 2022/5/30/10:30
 */
@RequestMapping("/ydd_tag")
@RestController
@Slf4j
public class YddTagController {

    @Autowired
    private YddTagService yddTagService;

    @GetMapping("/all")
    public R<List<YddTag>> all() {
        List<YddTag> list = yddTagService.list();
        return R.success(list);
    }
    @GetMapping("/list")
    public R<MyPage>page(String tagname, int page, int limit){
        Page<YddTag>pageInfo =new Page<>(page,limit);
        LambdaQueryWrapper<YddTag> queryWrapper =new LambdaQueryWrapper<>();
        queryWrapper.like(StringUtils.isNotEmpty(tagname),YddTag::getTagname,tagname);
        queryWrapper.orderByDesc(YddTag::getDefaultData);
        yddTagService.page(pageInfo,queryWrapper);
        //设置MyPage的基本属性
        MyPage<YddTag>yddTagPageBean = new MyPage<>();
        //总条数
        yddTagPageBean.setCount(pageInfo.getTotal());
        //每页条数
        yddTagPageBean.setPageSize(pageInfo.getSize());
        //总页数
        yddTagPageBean.setTotalPages((pageInfo.getTotal() / pageInfo.getSize()) + 1);
        //当前页
        yddTagPageBean.setCurrentPage(pageInfo.getCurrent());


        yddTagPageBean.setData(pageInfo.getRecords());


        return R.success(yddTagPageBean);
    }
    @GetMapping("/rowInfo")
    public R<YddTag> update(int id){
        YddTag yddTag = yddTagService.getById(id);
        return  R.success(yddTag);
    }
    @GetMapping("/del")
    public R<String>deleteById(int id){
        yddTagService.removeById(id);
        return R.success("删除成功");
    }
    @PostMapping("/add")
    public R<String>add(@RequestBody YddTag yddTag){
        yddTagService.save(yddTag);
        return R.success("添加成功");
    }
    @PostMapping("/update")
    public R<String>update(@RequestBody YddTag yddTag){
        yddTagService.updateById(yddTag);
        return R.success("修改成功");
    }
}
